// 给你一个只包含 '(' 和 ')' 的字符串，找出最长有效（格式正确且连续）括号子串的长度。
/**
 * @param {string} s
 * @return {number}
 */
var longestValidParentheses = function(s) {
        let stk = [];
        let max = 0;
        let temp = [];
        s = s.split("");
        for (let i = 0; i < s.length; i++) {
            if (stk.length == 0 && s[i] == ")") {
                console.log(temp)
                temp = [];
                continue;
            }
            if (s[i] == "(") {
                stk.push(s[i]);
            }
            if (stk.length != 0 && s[i] == ")") {
                temp.push(stk[stk.length - 1]);
                temp.push(s[i]);
                stk.pop();
                if (temp.length > max) {
                    max = temp.length;
                }
            }
        }
        return max;
    }
    // 通过保存下标来确定最大长度，因为长度为0是）必不可能去匹配，所以此时用他来作为基准值
    // 在开头也同样定义一个基准值
    /**
     * @param {string} s
     * @return {number}
     */
var longestValidParentheses = function(s) {
    let stk = [];
    let max = 0;
    stk.push(-1);
    for (let i = 0; i < s.length; i++) {
        if (s[i] == "(") {
            stk.push(i);
        } else {
            stk.pop();
            if (stk.length != 0) {
                max = Math.max(max, i - stk[stk.length - 1]);
            } else {
                stk.push(i)
            }
        }
    }
    return max;
};